﻿// 推箱子.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
// author：孙奉天
#include <stdlib.h>
#include <iostream>
extern "C"
{
	int ai01(int linenumber, char l[50][50]);
}
using namespace std;
int ai01(int linenumber, char l[50][50])
{
	// char l[10][10] = { 0 };
	// int linenumber;
	int x, y;
	int ste[4] = { 0,0,0,0 };
	char ret;
	/*
	string line;
	cin >> linenumber;
	for (int i = 0; i < linenumber; i++)//输入地图
	{
		cin >> line;
		for (int j = 0; j < line.length(); j++)
		{
			l[i][j] = line[j];

		}
	}
	*/
	for (int i = 0; i < linenumber; i++) //确定小人位置
	{
		for (int j = 0; l[i][j] != 0; j++)
		{
			if (l[i][j] == '@')
			{
				x = j, y = i;
				break;
			}
		}
	}
		if (l[y-1][x] == ' ') //进行四个方向的障碍物判定
		{
			ste[0] = 1;
		}
		else if (l[y - 1][x] == 'O')
		{
			if (l[y - 2][x] == ' ' || l[y - 2][x] == 'X')
				ste[0] = 1;
		}
		if (l[y + 1][x] == ' ')
		{
			ste[1] = 1;
		}
		else if (l[y + 1][x] == 'O')
		{
			if (l[y + 2][x] == ' '|| l[y+2][x]=='X')
				ste[1] = 1;
		}
		if (l[y][x - 1] == ' ')
		{
			ste[2] = 1;
		}
		else if (l[y][x - 1] == 'O')
		{
			if (l[y][x - 2] == ' ' || l[y][x-2] == 'X')
				ste[2] = 1;
		}
		if (l[y][x + 1] == ' ')
		{
			ste[3] = 1;
		}
		else if (l[y][x + 1] == 'O')
		{
			if (l[y][x + 2] == ' ' || l[y][x+2] == 'X')
				ste[3] = 1;
		}

		for (int y = 0; y < 100; y++)
		{
			int b = rand() % 5;		   //生成随机数
			if (b == 1 && ste[0] == 1) //走到某个位置
			{
				//cout << "u";
				ret = 'u';
				break;
			}
			if (b == 2 && ste[1] == 1)
			{
				//cout << "d";
				ret = 'd';
				break;
			}
			if (b == 3 && ste[2] == 1)
			{
				//cout << "l";
				ret = 'l';
				break;
			}
			if (b == 4 && ste[3] == 1)
			{
				//cout << "r";
				ret = 'r';
				break;
			}
		}
	return ret;
}

	// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
	// 调试程序: F5 或调试 >“开始调试”菜单

	// 入门使用技巧:
	//   1. 使用解决方案资源管理器窗口添加/管理文件
	//   2. 使用团队资源管理器窗口连接到源代码管理
	//   3. 使用输出窗口查看生成输出和其他消息
	//   4. 使用错误列表窗口查看错误
	//   5. 转到“项目”>“添加新项”以创建新的代码文件，或转到“项目”>“添加现有项”以将现有代码文件添加到项目
	//   6. 将来，若要再次打开此项目，请转到“文件”>“打开”>“项目”并选择 .sln 文件
